' RADIO-LOG (©) Copyright 1990 by Rev.Arend Venema Snr. (VK3CHP) ' ' Copy of the program only permitted if program is copied unchanged. ' See SHARE-Note in Read-Me Program. TOP: CLEAR ,200000 ,8000 GOSUB 30000 :GOTO 1000 2 : IF NUM=1 AND NM=1 THEN RETURN C$=CS$: IF JO=1 THEN C$=OCS$ W=1:T=NM:J=LEN(C$):FL=0:UP=0:DWN=0:Y=0 3 : X= INT (T/2) 4 IF C$ = LEFT$(IN$(T),J) THEN GOTO 23 5 IF C$ < LEFT$(IN$(T),J) THEN T = (T-X):X = INT(X/2):XL=1 6 IF X = 0 AND XL = 1 THEN T = T - 1 7 IF T < 1 THEN T = 0: GOTO 28 8 IF T > NM THEN T = 0: GOTO 28 9 IF C$ > LEFT$(IN$(T),J) THEN T = (T+X):X = INT(X/2):XK=1 10 IF X=0 AND XK=1 THEN T=T+1 11 W=1 12 FL=FL+1: IF FL=20 THEN T=0: GOTO 18 13 IF T<1 THEN T=0: GOTO 28 14 IF T>NM THEN T=0: GOTO 28 15 XL=0:XK=0: GOTO 4 16 IF C$= LEFT$(IN$(T),J) THEN GOTO 23 17 GOTO 22 18 IF C$ <> LEFT$(IN$(T),J) THEN 28 19 IF C$ = LEFT$(IN$(T),J) THEN GOTO 23 20 IF UP=1 THEN T=T+1: GOTO 18 21 IF DWN=1 THEN T=T-1: GOTO 18 22 IF FL THEN GOTO 4 23 IF C$ > LEFT$(IN$(T),LEN(IN$(T))-4) THEN T=T+1:UP=1: GOTO 18 24 IF C$ < LEFT$(IN$(T),LEN(IN$(T))-4) THEN T=T-1:DWN=1: GOTO 18 25 IF LEN(C$) <> LEN(IN$(T))-4 THEN 28 27 QL$="-":YU=1:XM=T:KK=0:LOCATE 21,1:GOTO 29 28 GOSUB CLRBT QL$="+":YU=0:KL=0:LOCATE 21,4 COLOR 2,3:PRINT "NEW CALLSIGN - Type in information....": COLOR 2,1 LOCATE V,3:PRINT TD$;:PRINT TAB(7);CS$;:TM$=" ":PRINT TAB(19);TM$;: LOCATE V,27:FQ$=" ":PRINT FQ$;:RO$=" ":PRINT TAB(36);RO$;:RI$=" ":PRINT TAB(41);RI$;: LOCATE V,46:NM$=" ":PRINT NM$;:QT$=" ":PRINT TAB(57);QT$;: LOCATE V,72:PRINT NUM;:PRINT TAB(78);QL$ RETURN 29 FOR I = XM TO NUM-1: IF C$ <> LEFT$(IN$(I),LEN(IN$(I))-4) THEN E=I-1:GOTO 31 30 NEXT I 31 FOR I = XM TO 1 STEP -1: IF C$ <> LEFT$(IN$(I),LEN(IN$(I))-4) THEN Q=I+1:GOTO 33 32 NEXT I 33 IF Q=0 THEN Q=1 IF E=0 THEN E=1 IF XM=NUM-1 THEN E=XM CT=(E-Q)+1:IF CT=<0 THEN CT=1 IF JO=1 THEN JO=0 : RETURN ' JO=Jump Out by Change Callsign 34 R%=VAL (RIGHT$(IN$(Q),4)) GOSUB CHECKDAT MX=VAL(LEFT$(DT$,2)) XT$=MID$(DT$,4,2) 47 GOSUB CLRBT LOCATE 21,4:COLOR 2,3:PRINT "First contact ";XT$;" ";MTH$(MX);" ";RIGHT$(DT$,4) LOCATE 21,37:PRINT CS$;:PRINT TAB(46);NM$;:PRINT TAB(58);QT$;:PRINT TAB(72);R%;:PRINT TAB(78);QL$ 49 R%=VAL(RIGHT$(IN$(E),4)) GOSUB CHECKDAT MX=VAL(LEFT$(DT$,2)) XT$=MID$(DT$,4,2) LOCATE 22,4:PRINT "Last contact ";XT$;" ";MTH$(MX);" ";RIGHT$(DT$,4) LOCATE 23,4:PRINT "Number of contacts is ";:PRINT CT;:COLOR 2,1 LOCATE V,46:PRINT NM$;:PRINT TAB(57);QT$ Q=0:E=0:CT=0:TM$=" ":FQ$=" ":RO$=" ":RI$=" " LOCATE V,19:PRINT TM$:LOCATE V,27:PRINT FQ$:LOCATE V,36:PRINT RO$:LOCATE V,41:PRINT RI$ RETURN 50 :' ROUTINE FOR MOVEMENT AFTER F KEY IS PRESSED.. F=0:C$="" LOCATE BB,LL:COLOR 1,1:PRINT" ":COLOR 2,3 51 : A$=INKEY$:A$=UCASE$(A$) IF A$=CHR$(32) THEN BEWEEG IF A$=""THEN 51 IF A$ = CHR$(8) THEN TERUG SK=LEN(C$):IF SK>0 THEN SPRING SPRING: IF A$=CHR$(13) THEN LAATZIEN IF A$>CHR$(57) AND A$CHR$(46) AND A$4 THEN PRINT BL$:GOTO LOGBOOK COLOR 2,3 LOCATE 22,4:PRINT "Ending No. of Logbook-List: " BB=22:LL=32:GOSUB 50:EN$=C$ B=LEN(EN$):IF B>4 THEN PRINT BL$:GOTO LOGBOOK GOSUB CLRBT: COLOR 2,3:LOCATE 21,50:PRINT "LOGBOOK - LIST..." LOCATE 21,4:PRINT "LOGBOOK LIST from No.: ";SN$;" to ";EN$ LOCATE 22,4:PRINT "Are You Happy With These Figures ? Y/N": 60 : KL$=INKEY$ :KL$=UCASE$(KL$) IF KL$ = "Y" THEN 62 IF KL$= "N" THEN 61 IF KL$ <> "Y" OR KL$ <> "N" THEN 60 61 IF KL$="N" THEN NUM=NM:V=V-1:AL=1:GOSUB 81:GOTO DATE 62 R%=VAL(SN$):E=VAL(EN$): PG=1:PA=1 69 : GOSUB CHECKDAT IF PG=1 THEN LPRINT TAB(20):LPRINT "L O G B O O K - L I S T from ";SN$;" to ";EN$;:LPRINT TAB(70) IF PG=1 THEN LPRINT "PAGE :"PA:FOR I = 1 TO 80:LPRINT "-";:NEXT IF PG=1 THEN LPRINT "NUM. CALLSIGN DATE TIME FREQ. SIGNAL SIGNAL NAME TOWN QSL": IF PG=1 THEN FOR I = 1 TO 80:LPRINT "-";:NEXT:LPRINT: R$=STR$(R%):R$=MID$(R$,2,(LEN(R$)-1)) IF LEN(R$)=1 THEN R$="000"+R$ IF LEN(R$)=2 THEN R$="00"+R$ IF LEN(R$)=3 THEN R$="0"+R$ GOSUB PRILINE : R%=R%+1:IF R%=E+1 THEN NUM=NM:V=V-1:AL=1:GOSUB 81:GOTO DATE PG=PG+1:IF PG=KJ THEN PG=1:PA=PA+1:LPRINT:LPRINT:FOR I = 1 TO 80:LPRINT "-";:NEXT:LPRINT:LPRINT:LPRINT:LPRINT: GOTO 69 80 : ' window title$=SPACE$(Z)+"LOGBOOK "+SU$(1) WINDOW 2,title$,(0,0)-(631,186),16 81 : COLOR 2,3:CLS:COLOR 2,1 tp=32:bt=155:lf=8:rt=626 LINE (4,tp)-(627,bt+2),2,bf ' black shadow LINE (lf,tp)-(rt,bt),1,bf ' white box LINE (lf,tp)-(rt,tp) LINE (4,22)-(625,24),2,bf LINE (4,24)-(8,32),2,bf LINE (42,tp)-(42,bt) LINE (131,tp)-(131,bt) LINE (195,tp)-(195,bt) LINE (268,tp)-(268,bt) LINE (312,tp)-(312,bt) LINE (355,tp)-(355,bt) LINE (443,tp)-(443,bt) LINE (564,tp)-(564,bt) LINE (624,22)-(627,bt),2,bf LINE (lf,bt)-(rt,bt) LOCATE 2,2 COLOR 2,3:PRINT "MONTH:";:PRINT TAB(19);: COLOR 2,3:PRINT "YEAR:";:PRINT TAB(49);: COLOR 2,3:PRINT "High No:";:PRINT TAB (64);: COLOR 2,3:PRINT "Line No:" LOCATE 2,9:PRINT MTH$(MT) LOCATE 2,25:PRINT YR$ COLOR 1,2:LOCATE 4,2:PRINT Z2$ IF PQ=1 THEN PQ=0:SU=1:GOSUB 1915:RETURN GOSUB 1915:NUM=NUM+1:V=V+1:IF NUM=2 THEN V=V-1:NUM=1 GOSUB 1915:V=V-1:IF AL=1 THEN AL=0:V=V+1 RETURN CHGMTH: GOSUB CLRBT:COLOR 2,3:LOCATE 21,4: PRINT "Type in Month > Number 1 to 12 < " BB=21:LL=38 :GOSUB 50 MT=VAL(C$): IF LEN(C$) =1 THEN C$="0"+C$ IF MT>12 THEN PRINT BL$:GOTO CHGMTH MA$=RIGHT$(STR$(MT),2) IF LEN(MA$) <> 2 THEN PRINT BL$:GOTO CHGMTH LOCATE 22,4:COLOR 2,3 PRINT "Type in Year > 4 numbers < " BB=22:LL=32: GOSUB 50 YR$=C$ IF LEN(YR$) <> 4 THEN PRINT BL$;:GOTO CHGMTH GOSUB CLRBT:COLOR 2,3: LOCATE 21,4:PRINT "Month = ";MTH$(MT);:PRINT " - Year = ";YR$ LOCATE 22,4:PRINT "Are You Happy With These Figures ? Y/N" 90 : KL$=INKEY$ :KL$=UCASE$(KL$) IF KL$="Y" THEN 91 IF KL$= "N" THEN CHGMTH IF KL$ <> "Y" OR KL$ <> "N" THEN 90 91 : COLOR 2,3:LOCATE 2,9:PRINT " ":LOCATE 2,25:PRINT " " COLOR 2,3:LOCATE 2,9:PRINT MTH$(MT);: LOCATE 2,25:PRINT YR$;: COLOR 2,1 NUM=NM:V=V-1 AL=1:GOSUB 81:GOTO DATE 100 : F=0:C$="" IF SS=1 THEN SS=0:LOCATE V,H:COLOR 2,3:PRINT SS$:COLOR 2,1:GOTO GetAKey LOCATE V,H:COLOR 1,3:PRINT " ":COLOR 2,1 GetAKey: A$=INKEY$ IF A$=CHR$(32) THEN GOTO MOVE A$=UCASE$(A$) IF A$="" THEN GOTO GetAKey IF A$=CHR$(8) THEN GOTO BACKSPACE SK=LEN(C$):IF SK>0 THEN GOTO SKIP IF A$=CHR$(31) THEN MV=1:LOCATE V,H:PRINT " ":RETURN IF A$=CHR$(30) THEN MV=2:LOCATE V,H:PRINT " ":RETURN IF A$=CHR$(28) AND H=3 THEN LOCATE V,H:PRINT TD$:JP=1:RETURN IF A$=CHR$(29) AND H=3 THEN LOCATE V,H:PRINT TD$:JP=2:RETURN IF A$=CHR$(134) AND H=3 THEN SU=1:LQ=0:LOCATE V,H:PRINT TD$:GOSUB WRITDAT:GOSUB CONVNR:GOSUB MAKEDATA:GOSUB 1900:RETURN IF A$=CHR$(129) AND H=3 THEN LOCATE V,H:PRINT TD$:GOTO SAVFIL IF A$=CHR$(130) AND H=3 THEN LOCATE V,H:PRINT TD$:QT=2:GOTO SAVFIL IF A$=CHR$(136) AND H=3 THEN LOCATE V,H:PRINT TD$:GOTO ALPHAPRINT IF A$=CHR$(131) AND H=3 THEN LOCATE V,H:PRINT TD$: GOTO MOVETONUM IF A$=CHR$(137) AND H=3 THEN LOCATE V,H:PRINT TD$:GOTO QSLCARD IF A$=CHR$(138) AND H=3 THEN LOCATE V,H:PRINT TD$:QT=1:GOTO SAVFIL IF A$=CHR$(139) AND H=3 THEN LOCATE V,H:PRINT TD$:GOSUB HELP:RETURN IF A$=CHR$(133) AND H=3 THEN LOCATE V,H:PRINT TD$:GOTO LOGBOOK IF A$=CHR$(132) AND H=3 THEN LOCATE V,H:PRINT TD$:GOTO CHGMTH IF A$=CHR$(135) AND H=3 THEN LOCATE V,H:PRINT TD$:GOSUB QSLCONF:R%=NUM:GOSUB WRIQSL:GOTO DATE SKIP: IF A$=CHR$(13) THEN GOTO SHOW IF A$>CHR$(57) AND A$CHR$(128) AND A$CHR$(46) AND A$3 THEN PRINT BL$:LOCATE V,H:PRINT " ":GOTO 100 IF WN=2 AND LEN(C$) >9 THEN PRINT BL$:LOCATE V,H:PRINT " ":GOTO 100 IF WN=3 AND LEN(C$) >4 THEN PRINT BL$:LOCATE V,H:PRINT " ":GOTO 100 IF WN=4 AND LEN(C$) >5 THEN PRINT BL$:LOCATE V,H:PRINT " ":GOTO 100 IF WN=5 AND LEN(C$) >9 THEN PRINT BL$:LOCATE V,H:PRINT " ":GOTO 100 IF WN=6 AND LEN(C$) >13 THEN PRINT BL$:LOCATE V,H:PRINT " ":GOTO 100 IF WN=7 AND LEN(C$) >2 THEN PRINT BL$:LOCATE V,H:PRINT " ":GOTO 100 COLOR 1,3:PRINT " ":COLOR 2,1 GOTO GetAKey BACKSPACE: L=LEN (C$)-1:IF L=-1 THEN GOTO GetAKey C$= LEFT$(C$,L) LOCATE V,H:PRINT C$; COLOR 1,3:PRINT " ";:COLOR 2,1:PRINT " " GOTO GetAKey SAVFIL: GOSUB CLRBT IF QT=2 THEN COLOR 2,3:LOCATE 22,4:PRINT "PLEASE WAIT..... NOW SAVING DATA BEFORE RUNNING HEADING-CHANGE !":GOTO HOP1 COLOR 2,3:LOCATE 22,4:PRINT "Please wait now saving ALL info...";: HOP1: COLOR 2,1 GOSUB 700: GOSUB WRI.INNUM: IF QT=1 THEN SYSTEM IF QT=2 THEN QT=0:RUN "Heading" IF QT=3 THEN QT=0:RUN "EAGLE" NUM=NM:V=V-1:AL=1:GOSUB 81:GOTO DATE HELP: GOSUB CLRBT:COLOR 2,3:LOCATE 21,4 PRINT "FUNCTION KEYS 2. ChangeHeading 5. Print Logbook 8. Alpha Print-out ";: LOCATE 22,4: PRINT " 3. Move To Line 6. Save Lineinfo 9. Print QSL Cards ";: LOCATE 23,4: PRINT "1. SAVE ALL INFO 4. New Month 7. QslCard Back 10. SAVE info & QUIT";: COLOR 2,1:MB=1 RETURN 200 : C$=LEFT$(CS$,1): W=1:T=DKX-2:Z=T:FL=0:UP=0:DWN=0:Y=0:XL=0:XK=0 203 : X= INT (T/2) 204 : IF C$ = LEFT$(XX$(T),1) THEN 229 IF C$ < LEFT$(XX$(T),1) THEN T = (T-X):X = INT(X/2):XL=1 IF X = 0 AND XL = 1 THEN T = T - 1 IF T < 1 THEN T = 0:GOTO 228 IF T > Z THEN T = 0:GOTO 228 IF C$ > LEFT$(XX$(T),1) THEN T = (T+X):X = INT(X/2):XK=1 IF X=0 AND XK=1 THEN T=T+1 W=1 FL=FL+1: IF FL=20 THEN T=0: GOTO 218 IF T<1 THEN T=0:GOTO 228 IF T > Z THEN T=0: GOTO 228 XL=0:XK=0: GOTO 204 IF C$= LEFT$(XX$(T),1) THEN 229 GOTO 222 218 : IF C$ <> LEFT$(XX$(T),1) THEN 228 IF C$ = LEFT$(XX$(T),1) THEN 229 IF UP=1 THEN T=T+1: GOTO 218 IF DWN=1 THEN T=T-1: GOTO 218 222 : IF FL THEN GOTO 204 228 : COLOR 2,3 LOCATE 23,40:PRINT "COUNTRY NOT LISTED";:COLOR 2,1:RETURN 229 : IC=T COUNT1: IF C$=LEFT$(XX$(IC),1) THEN IC=IC+1:GOTO COUNT1 EN=IC:IC=T COUNT2: IF C$=LEFT$(XX$(IC),1) THEN IC=IC-1:GOTO COUNT2 SN=IC FOR I=SN TO EN IF LEFT$(CS$,3) = > XX$(I) AND LEFT$(CS$,3) = < XL$(I) THEN GOTO BINGO NEXT I COLOR 2,3 LOCATE 23,40:PRINT "COUNTRY NOT LISTED";:COLOR 2,1:RETURN BINGO: IF XH$(I) <> "&" THEN BINGO2 IF XH$(I)="&" AND I=117 AND MID$(CS$,4,1)="A" THEN XH$(I)="EASTER ISLAND":RQ=1:GOTO BINGO2 IF XH$(I)="&" AND I=117 AND MID$(CS$,4,1)="X" THEN XH$(I)="SAN FELIX":RQ=1:GOTO BINGO2 IF XH$(I)="&" AND I=117 AND MID$(CS$,4,1)="Z" THEN XH$(I)="JUAN FERNANDEZ":RQ=1:GOTO BINGO2 IF XH$(I)="&" AND I=168 AND MID$(CS$,4,1)="G" THEN XH$(I)="GLORIOSO ISL":RQ=1:GOTO BINGO2 IF XH$(I)="&" AND I=168 AND MID$(CS$,4,1)="E" THEN XH$(I)="JUAN DE NOVA - EUROPA":RQ=1:GOTO BINGO2 IF XH$(I)="&" AND I=168 AND MID$(CS$,4,1)="J" THEN XH$(I)="JUAN DE NOVA - EUROPA":RQ=1:GOTO BINGO2 IF XH$(I)="&" AND I=168 AND MID$(CS$,4,1)="T" THEN XH$(I)="TROMELIN":RQ=1:GOTO BINGO2 IF XH$(I)="&" AND I=170 AND MID$(CS$,4,1)="W" THEN XH$(I)="COZET":RQ=1:GOTO BINGO2 IF XH$(I)="&" AND I=170 AND MID$(CS$,4,1)="X" THEN XH$(I)="KERGUELEN ISL":RQ=1:GOTO BINGO2 IF XH$(I)="&" AND I=170 AND MID$(CS$,4,1)="Z" THEN XH$(I)="AMSTERDAM & ST.PAUL ISL":RQ=1 BINGO2: COLOR 2,3 LOCATE 23,37:PRINT CS$;:PRINT " --> ";:PRINT XH$(I);:IF RQ=1 THEN RQ=0:XH$(I)="&" COLOR 2,1 RETURN QSLCONF: IF NUM=>NM+1 THEN GOSUB NOGO:RETURN QL$="*":LOCATE V,78:PRINT QL$ LOCATE V,72:PRINT NUM;:LOCATE V,78:PRINT QL$;: RETURN NOGO: GOSUB CLRBT:COLOR 2,3:LOCATE 21,4:PRINT "Save this line first with key F6 and then use F7.." COLOR 2,1 RETURN QSLCARD: GOSUB CLRBT:COLOR 2,3:LOCATE 21,4:PRINT "QSL Card to be Printed No: ";NUM:R%=NUM GOSUB CHECKDAT: LOCATE 22,4:PRINT "Card In Printer Y/N " 505 : KL$=INKEY$ :KL$=UCASE$(KL$) IF KL$="Y" THEN 510 IF KL$= "N" THEN 508 IF KL$ <> "Y" OR KL$ <> "N" THEN 505 508 : IF KL$="N" THEN NUM=NM:V=V-1:AL=1:GOSUB 81:GOTO DATE 510 : MD$=" CW" IF MID$(RI$,2,1)="-" THEN MD$="S.S.B" RM=2:X=2:IF LEN(FQ$)=5 THEN X=3:RM=1 TM$=LEFT$(TM$,2)+RIGHT$(TM$,2) LPRINT "":LPRINT "":LPRINT "":LPRINT "":LPRINT "":LPRINT "" LPRINT "":LPRINT "":LPRINT "":LPRINT "": IF LEN(CS$)=4 THEN 521 IF LEN(CS$)=5 THEN 522 IF LEN(CS$)=6 THEN 528 IF LEN(CS$) > 8 THEN 534 IF LEN(CS$) > 6 THEN 550 521 : LPRINT TAB(21):LPRINT CHR$(&He);CS$;CHR$(&H14);SPC(6):GOTO 536 522 : LPRINT TAB(21):LPRINT CHR$(&He);CS$;CHR$(&H14);SPC(4):GOTO 536 526 : LPRINT TAB(21):LPRINT CHR$(&He);CC$;CHR$(&H14);CD$;: LPRINT SPC(15-(LEN(CC$)*2)-LEN(CD$)):GOTO 536 528 : LPRINT TAB(21):LPRINT CHR$(&He);CS$;CHR$(&H14);SPC(2):GOTO 536 534 : LPRINT TAB(22):LPRINT CS$;:LPRINT SPC(13 - LEN(CS$));: 536 : LPRINT MID$(DT$,4,2);" ";MM$(VAL(LEFT$(DT$,2)));" ";RIGHT$(DT$,4);: LPRINT SPC(1):LPRINT TM$;:LPRINT SPC(1):LPRINT LEFT$(FQ$,X);: LPRINT SPC(RM):LPRINT RI$;:LPRINT SPC(1):LPRINT MD$ GOSUB CLRBT 538 : LOCATE 22,4:A$=INKEY$: IF A$="" THEN 538 LPRINT TAB(55):LPRINT CHR$(&He);CS$;CHR$(&H14) FOR I = 1 TO 10: LPRINT "":NEXT TM$=LEFT$(TM$,2)+":"+RIGHT$(TM$,2) QL$="-":GOSUB WRIQSL V=6:GOSUB 81:V=V+1:GOTO DATE 550 : A=5:U=LEN(CS$) 551 : IF MID$(CS$,A,1)="/" THEN CC$=LEFT$(CS$,(A-1)):CD$=MID$(CS$,A,(U-A+1)): GOTO 526 A=A+1:IF A=U THEN 526 GOTO 551 ALPHAPRINT: GOSUB CLRBT COLOR 2,3:LOCATE 21,50:PRINT "ALPHA-PRINTOUT..." LOCATE 21,4:PRINT "Starting Letter(s) of List: " BB=21:LL=32:GOSUB 50:ST$=C$ B = LEN(ST$):IF B > 6 THEN PRINT BL$: GOTO ALPHAPRINT COLOR 2,3:LOCATE 22,4:PRINT "Ending Letter(s) of List: " BB=22:LL=31:GOSUB 50:EN$=C$ W = LEN(EN$):IF W > 6 THEN PRINT BL$: GOTO ALPHAPRINT GOSUB CLRBT:COLOR 2,3:LOCATE 21,50:PRINT "ALPHA-PRINTOUT...":LOCATE 21,4:PRINT "Print-out will be from ";ST$;" to ";EN$ LOCATE 22,4:PRINT "Are You Happy With These Figures ? Y/N ";: BCK1: KL$=INKEY$ :KL$=UCASE$(KL$) IF KL$ = "Y" THEN BCK3 IF KL$= "N" THEN BCK2 IF KL$ <> "Y" OR KL$ <> "N" THEN BCK1 BCK2: IF KL$="N" THEN NUM=NM:V=V-1:AL=1:GOSUB 81:GOTO DATE BCK3: GOSUB CLRBT:COLOR 2,3:LOCATE 21,50:PRINT "ALPHA-PRINTOUT..." LOCATE 21,4:PRINT "Printout every CallSign ONCE ? Y/N" BCK4: KL$=INKEY$ :KL$=UCASE$(KL$) IF KL$ = "Y" THEN EC=0:GOTO BCK5 IF KL$= "N" THEN EC=1:GOTO BCK5 IF KL$ <> "Y" OR KL$ <> "N" THEN BCK4 BCK5: PG=1:PA=1 FOR I = 1 TO NUM: IF ST$=LEFT$(IN$(I),B) THEN Q = I:GOTO JMP1 NEXT I IF Q=0 THEN Q=1 JMP1: FOR I = NUM TO 1 STEP - 1:IF EN$=LEFT$(IN$(I),W) THEN E=I:GOTO JMP2 NEXT I GOSUB CLRBT JMP2: R%=VAL(RIGHT$(IN$(Q),4)):R$=RIGHT$(IN$(Q),4) GOSUB CHECKDAT: IF Q=1 THEN GOTO 600 IF EC=1 THEN 600 AV$=LEFT$(IN$(Q-1),LEN(IN$(Q-1))-4) IF AV$=CS$ THEN Q=Q+1:PG=PG-1:GOTO JMP3 600 : IF PG=1 THEN LPRINT TAB(25):LPRINT "A L P H A L I S T from ";ST$;" to ";EN$;:LPRINT TAB (70) IF PG=1 THEN LPRINT "PAGE :"PA:FOR I = 1 TO 80:LPRINT "-";:NEXT IF PG=1 THEN LPRINT "NUM. CALLSIGN DATE TIME FREQ. SIGNAL SIGNAL NAME TOWN QSL": IF PG=1 THEN FOR I = 1 TO 80:LPRINT "-";:NEXT:LPRINT: GOSUB PRILINE:Q=Q+1 JMP3: IF Q=E+1 THEN FOR I=1 TO 80:LPRINT "-";:NEXT I:NUM=NM:AL=1:V=V-1:GOSUB 81: GOTO DATE PG=PG+1:IF PG=KJ THEN PG = 1:PA=PA+1:LPRINT :LPRINT :FOR I=1 TO 80:LPRINT "-";:NEXT:LPRINT :LPRINT :LPRINT :LPRINT : GOTO JMP2 PRILINE: LPRINT R$;:LPRINT TAB(6):LPRINT CS$;:LPRINT TAB(16): LPRINT MID$(DT$,4,2);" ";MM$(VAL(LEFT$(DT$,2)));"'";RIGHT$(DT$,2);: LPRINT TAB(28):LPRINT TM$;:LPRINT TAB(34):LPRINT FQ$;:LPRINT TAB(41): LPRINT "His:";RI$;:LPRINT TAB(49):LPRINT "Me:";RO$;:LPRINT TAB(57): LPRINT NM$;:LPRINT TAB(66):LPRINT QT$;:LPRINT TAB(80):LPRINT QL$ LPRINT "" RETURN 700 : ' Check-routine for the right NUM after (F1) R%=NUM:X=0: 705 : GOSUB CHECKDAT IF CS$ = "" OR LEFT$(CS$,1)=" " THEN R%=R%-1:X=1: GOTO 705 IF X=1 AND CS$ <> CHR$(13) THEN GOTO 730 IF CS$ <> CHR$(13) THEN R%=R%+1: GOTO 705 730 : NUM=R% RETURN 1000 : GOSUB REA.INNUM:GOSUB 80 MA$=LEFT$(DATE$,2):MN=VAL(MA$):V=V+1 DATE: 'TD$=DD DT$=MM-DD-YYYY WN=7:COLOR 2,1 LOCATE V,3:PRINT TD$:IF LEN (TD$) >1 THEN SS=1:SS$=LEFT$(TD$,1) H=3: GOSUB 100 IF SU=1 THEN SU=0:GOTO DATE IF JP THEN LOCATE V,H:PRINT TD$:GOSUB 1800 :GOTO DATE IF MV=1 THEN MV=0:LOCATE V,H:PRINT TD$:GOTO QTH IF MV=2 THEN MV=0:LOCATE V,H:PRINT TD$:GOTO CALLSIGN IF C$="" THEN TD$=MID$(DATE$,4,2):LOCATE V,3:PRINT TD$:GOTO CALLSIGN IF LEN (C$) > 2 THEN PRINT BL$:GOTO DATE TD$=C$:IF LEN (C$) = 1 THEN TD$="0"+C$:LOCATE V,3:PRINT TD$ CALLSIGN: IF MB=1 THEN MB=0:GOTO DATE WN=2 IF MCS=1 THEN SKIPOCS IF CS$="" THEN FX=1 OCS$=CS$: SKIPOCS: LOCATE V,7:PRINT CS$:IF LEN (CS$) >1 THEN SS=1:SS$=LEFT$(CS$,1) H=7: GOSUB 100: IF NUM = < NM THEN NCS=1 IF MV=1 THEN MV=0:LOCATE V,7:PRINT CS$:GOTO DATE IF C$="" OR MV=2 THEN MV=0:LOCATE V,7:PRINT CS$:GOTO TYD CS$=C$ IF NUM = < NM THEN 1092 GOSUB 2 :GOSUB 200 1092 : IF NCS=1 AND OCS$ < > CS$ THEN MCS=1 LOCATE V,7:PRINT " ":LOCATE V,7:PRINT CS$ TYD: WN=3 LOCATE V,19:PRINT TM$:IF LEN (TM$) >1 THEN SS=1:SS$=LEFT$(TM$,1) H=19: GOSUB 100 IF MV=1 THEN MV=0:LOCATE V,19:PRINT TM$:GOTO CALLSIGN IF MV=2 THEN MV=0:LOCATE V,19:PRINT TM$:GOTO FREQUENTY IF C$=""THEN TM$=LEFT$(TIME$,5):LOCATE V,19:PRINT TM$:GOTO FREQUENTY IF LEN (C$)=1 THEN C$="000"+C$ IF LEN (C$)=2 THEN C$="00"+C$ IF LEN (C$)=3 THEN C$="0"+C$ TM$=LEFT$(C$,2)+":"+RIGHT$(C$,2):LOCATE V,19:PRINT TM$ FREQUENTY: WN=4 LOCATE V,27:PRINT FQ$:IF LEN (FQ$) >1 THEN SS=1:SS$=LEFT$(FQ$,1) H=27: GOSUB 100 IF MV=1 THEN MV=0:LOCATE V,27:PRINT FQ$:GOTO TYD IF MV=2 THEN MV=0:LOCATE V,27:PRINT FQ$:GOTO RSTIN IF C$="" THEN FQ$=QF$:LOCATE V,27:PRINT FQ$:GOTO RSTIN IF LEN (C$)>5 THEN PRINT CHR$(7):GOTO FREQUENTY IF LEN (C$)=4 THEN C$=" "+C$ FQ$=LEFT$(C$,2)+"."+RIGHT$(C$,3):QF$=FQ$:LOCATE V,27:PRINT FQ$ RSTIN: WN=1 LOCATE V,36:PRINT RI$:IF LEN (RI$) >1 THEN SS=1:SS$=LEFT$(RI$,1) H=36: GOSUB 100 IF MV=1 THEN MV=0:LOCATE V,36:PRINT RI$:GOTO FREQUENTY IF C$="" OR MV=2 THEN MV=0:LOCATE V,36:PRINT RI$:GOTO RSTOUT IF LEN(C$)= 3 THEN RI$=C$: LOCATE V,36:PRINT RI$:GOTO RSTOUT RI$=LEFT$(C$,1)+"-"+RIGHT$(C$,1):LOCATE V,36:PRINT RI$ RSTOUT: WN=1 LOCATE V,41:PRINT RO$:IF LEN (RO$) >1 THEN SS=1:SS$=LEFT$(RO$,1) H=41: GOSUB 100 IF MV=1 THEN MV=0:LOCATE V,41:PRINT RO$:GOTO RSTIN IF C$="" OR MV=2 THEN MV=0:LOCATE V,41:PRINT RO$:GOTO NAAM IF LEN(C$)= 3 THEN RO$=C$: LOCATE V,41:PRINT RO$:GOTO NAAM RO$=LEFT$(C$,1)+"-"+RIGHT$(C$,1):LOCATE V,41:PRINT RO$ NAAM: IF YU=1 THEN YU = 0: LQ=1:GOTO QSL WN=5 LOCATE V,46:PRINT NM$:IF LEN (NM$) >1 THEN SS=1:SS$=LEFT$(NM$,1) H=46: GOSUB 100 IF MV=1 THEN MV=0:LOCATE V,46:PRINT NM$:GOTO RSTOUT IF C$="" OR MV=2 THEN MV=0:LOCATE V,46:PRINT NM$:GOTO QTH NM$=C$:LOCATE V,46:PRINT " ":LOCATE V,46:PRINT NM$ QTH: WN=6 LOCATE V,57:PRINT QT$:IF LEN (QT$) >1 THEN SS=1:SS$=LEFT$(QT$,1) H=57: GOSUB 100 IF MV=1 THEN MV=0:LOCATE V,57:PRINT QT$:GOTO NAAM IF C$="" OR MV=2 THEN MV=0:LOCATE V,57:PRINT QT$:GOTO DATE QT$=C$:LOCATE V,57:PRINT " ":LOCATE V,57:PRINT QT$ QSL: IF LQ=1 THEN GOTO QLPR IF NUM=1 AND NM=1 THEN GOTO SKIP3 IF NUM = < NM THEN GOTO QLPR SKIP3: QL$="+":LOCATE V,78:PRINT QL$ QLPR: LOCATE V,72:PRINT NUM;:LOCATE V,78:PRINT QL$;: GOTO DATE MOVETONUM: GOSUB CLRBT COLOR 2,3:LOCATE 21,50:PRINT "MOVE TO LINE-NUMBER..." LOCATE 21,4:PRINT "Type in Line Number :" BB=21:LL=26:GOSUB 50:R$=C$:COLOR 2,3 LOCATE 22,4:PRINT "Correct Number Y/N ? " 1505 : KL$=INKEY$ :KL$=UCASE$(KL$):IF KL$="Y" THEN 1510 IF KL$= "N" THEN 1508 IF KL$ <> "Y" OR KL$ <> "N" THEN 1505 1508 : IF KL$="N" THEN NUM=NM:V=6:AL=1:GOSUB 81:GOTO DATE 1510 : R%=VAL(R$):NUM=R%-1:IF NUM=0 THEN NUM = 1 GOSUB CHECKDAT V=6:GOSUB 81:V=V+1:GOTO DATE 1800 : 'Decrement Line IF CS$ = "" THEN LOCATE V,73:PRINT " ";: IF JP=2 THEN GOTO 1900 V=V-1:NUM=NUM-1:IF NUM < 1 THEN NUM = 1 :V=V+1:NF=1 IF V<6 THEN V=19 GOTO 1910 1900 : 'Increment Line IF JL=1 THEN JL=0:RETURN V=V+1:NUM=NUM+1 IF V>19 THEN V=6 1910 : IF NF=1 THEN NF=0:JP=0:RETURN 1915 : JP=0 R%=NUM:GOSUB READAT IF V < 6 THEN V = 19 IF V > 19 THEN V = 6 TD$=MID$(DT$,4,2) COLOR 2,1 : IF CS$="" THEN CS$=" ":KO=1 LOCATE V,3:PRINT TD$;:PRINT TAB(7);CS$;:PRINT TAB(19);TM$;: LOCATE V,27:PRINT FQ$;:PRINT TAB(36);RI$;:PRINT TAB(41);RO$;: LOCATE V,46:PRINT NM$;:PRINT TAB(57);QT$;: LOCATE V,72:PRINT NUM;:PRINT TAB(78);QL$;: IF KO=1 THEN KO=0:CS$="" COLOR 2,3:LOCATE 2,57:PRINT NM:LOCATE 2,72:PRINT NUM CLRBT: COLOR 3,3:FOR I=21 TO 23:LOCATE I,4:PRINT STRING$(77," ");:NEXT COLOR 2,1 RETURN WRITDAT: R%=NUM :DT$=MA$+"-"+TD$+"-"+YR$ WRIQSL: IF LEFT$(CS$,1)=" " OR CS$="" THEN RETURN IF NUM > NM+1 THEN JL=1:GOTO WARN1 OPEN "R",#1,"LOGFIL",59 FIELD #1,10 AS A$,9 AS B$,5 AS C$,6 AS D$,3 AS E$,3 AS F$,9 AS G$,13 AS H$,1 AS I$ LSET A$=DT$ LSET B$=CS$ LSET C$=TM$ LSET D$=FQ$ LSET E$=RO$ LSET F$=RI$ LSET G$=NM$ LSET H$=QT$ LSET I$=QL$ PUT #1,R% CLOSE #1 IF MCS=1 THEN MCS=0:NCS=0:GOSUB CHKCHGCS RETURN WARN1: GOSUB CLRBT:COLOR 2,3:LOCATE 21,4 PRINT "You CANNOT Save this line......" LOCATE 22,4:PRINT "There is NO info on previous line(s) !!!";: PRINT BL$:COLOR 2,1 RETURN READAT: R%=NUM CHECKDAT: OPEN "R",#1,"LOGFIL",59 FIELD #1,10 AS A$,9 AS B$,5 AS C$,6 AS D$,3 AS E$,3 AS F$,9 AS G$,13 AS H$,1 AS I$ GET #1,R% LET DT$=A$ LET CS$=B$ LET TM$=C$ LET FQ$=D$ LET RO$=E$ LET RI$=F$ LET NM$=G$ LET QT$=H$ LET QL$=I$ CLOSE #1 Z=INSTR(CS$," "):IF Z=0 THEN RETURN CS$=LEFT$(CS$,Z-1):Z=0 RETURN WRI.INNUM: OPEN "INFLOG" FOR OUTPUT AS #1 WRITE #1,NUM FOR I = 1 TO NUM WRITE #1,IN$(I) NEXT I CLOSE #1 KILL "INFLOG.INFO" RETURN REA.INNUM: OPEN "I",#1,"INFLOG" INPUT #1,NUM DM=NUM+250:DIM IN$(DM) FOR I = 1 TO NUM INPUT #1,IN$(I) NEXT I CLOSE #1 IF NUM=0 THEN NUM=1 NM=NUM RETURN CONVNR: 'Convert Num into string for Callsign+number IF NUM=1 AND NM=1 THEN FC=1: GOTO SKIP2 IF LEFT$(CS$,1)=" " OR CS$="" THEN RETURN IF NUM = < NM THEN RETURN IF JL=1 THEN RETURN SKIP2: A$=STR$(NUM):A$=MID$(A$,2,(LEN(A$)-1)) IF LEN(A$)=1 THEN A$="000"+A$ IF LEN(A$)=2 THEN A$="00"+A$ IF LEN(A$)=3 THEN A$="0"+A$ CS$=CS$+A$:IN$(NUM)=CS$ IF FC=1 THEN FC=0:RETURN: 'FC is flag for FIRST CALLSIGN NM=NM+1: FOR I=NUM TO 2 STEP - 1 IF IN$(I) < IN$(I-1) THEN SWAP IN$(I),IN$(I-1):NEXT I RETURN CHKCHGCS: 'Check Change in CallSign IF OCS$="" OR LEFT$(OCS$,1)=" " THEN RETURN JO=1 GOSUB 2 JO=0 LKAGN: IF VAL(RIGHT$(IN$(Q),4))=R% THEN CH=Q:CS$ = CS$ + RIGHT$(IN$(Q),4): IN$(Q)=CS$: GOTO ALPHASORT Q=Q+1:IF Q=E+1 THEN RETURN GOTO LKAGN RETURN ALPHASORT: IF Q=1 THEN CH=0:RETURN IF IN$(Q) < IN$(Q-1) THEN SWAP IN$(Q),IN$(Q-1):Q=Q-1:GOTO ALPHASORT IF Q <> CH THEN CH=0:RETURN SECALFA: IF Q=NM THEN CH=0:RETURN IF IN$(Q) > IN$(Q+1) THEN SWAP IN$(Q),IN$(Q+1):Q=Q+1:GOTO SECALFA CH=0 RETURN MAKEDATA: IF VAL(SU$(2))=< NUM+50 THEN GAH RETURN GAH: GOSUB CLRBT:COLOR 2,3 LOCATE 21,5:PRINT "Please WAIT, now updating files......." LOCATE 22,5:PRINT "Writing DATA to file > Line NUMBER = " S$=SU$(2):I%=VAL(S$)-1 E%=I%+51:E$=STR$(E%):SU$(2)=E$:SU$(3)="" SU$(2)=MID$(SU$(2),2,LEN(SU$(2))-1):SU$(3)=SU$(2) DT$="":CS$="":TM$="":FQ$="":RO$="" RI$="":NM$="":QT$="":QL$="" OPEN "R",#1,"LOGFIL",59 FIELD #1,10 AS A$,9 AS B$,5 AS C$,6 AS D$,3 AS E$,3 AS F$,9 AS G$,13 AS H$, 1 AS I$ START: I%=I%+1:IF I%=E% THEN CLOSE #1:GOTO WRISETUP LOCATE 22,41: PRINT I%;: LSET A$ = DT$ LSET B$ = CS$ LSET C$ = TM$ LSET D$ = FQ$ LSET E$ = RO$ LSET F$ = RI$ LSET G$ = NM$ LSET H$ = QT$ LSET I$ = QL$ PUT #1,I% GOTO START WRISETUP: OPEN "SETUP"FOR OUTPUT AS #1 FOR I = 1 TO 4 WRITE #1,SU$(I) NEXT CLOSE #1 KILL "SETUP.INFO" RETURN 30000 : DIM MM$(12) :V=6:BL$=CHR$(7) DIM MTH$(12):MT=VAL(LEFT$(DATE$,2)):YR$=RIGHT$(DATE$,4) Z2$="DATE CALLSIGN TIME FREQ. HIS ME NAME QTH NUM QSL" DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER FOR I=1 TO 12:READ MTH$(I):NEXT DATA JAN.,FEB.,MAR.,APR.,MAY.,JUN.,JUL.,AUG.,SEP.,OCT.,NOV.,DEC. FOR I = 1 TO 12:READ MM$(I):NEXT OPEN "I",#1,"SETUP" INPUT #1,SU$(1) INPUT #1,SU$(2) INPUT #1,SU$(3) INPUT #1,SU$(4) CLOSE #1 X=INT(LEN(SU$(1))/2):Z=33-X KJ=VAL(SU$(4)) DIM XX$(450):DIM XL$(450):DIM XH$(450) OPEN "I",#1,"COUNTRY" INPUT #1,DKX FOR I=1 TO DKX INPUT #1,XX$(I) INPUT #1,XL$(I) INPUT #1,XH$(I) NEXT CLOSE #1 RETURN